package com.qf.fcy.youshare;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.Window;
import com.qf.fcy.youshare.model.Category;
import com.qf.fcy.youshare.task.CategoryTask;
import com.qf.fcy.youshare.utils.TaskProcessor;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * Created with IntelliJ IDEA.
 * User: Alex[FR]
 * Date: 2015/2/4
 * Email: alex_fcy@163.com
 */

/**
 * 启动页面，等待2s，进入下一个页面，可能是引导页或者主界面
 */
public class SplashActivity extends FragmentActivity implements Runnable, TaskProcessor {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 通过代码的方式去掉标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_splash);

//        new Thread(this).start();
        // 这个地方进行数据的加载
        // 1.加载商城的分类
        new CategoryTask(this).execute(Constants.API_POINT + "/itemcats.php");
    }

    @Override
    public void run() {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void processor(JSONObject result) {
        // TODO 保存数据到一个公共的区域，然后启动其他页面
        if (result != null) {
            Log.i("info", "Category:" + result);
            try {
                int code = result.getInt("code");
                if (code == 1) { // 代表成功
                    JSONObject msg = result.getJSONObject("msg");
                    JSONArray names = msg.names();

                    // 存储分类的信息，通过分类ID引用到实际的分类上
                    // 只是保存最上层分类，子分类都是通过内部 subCategories 来进行
                    DataStorage dataStorage = DataStorage.getInstance();

                    if (names != null) {
                        for (int i = 0; i < names.length(); i++) {
                            String string = names.getString(i);

                            // 获取每一个分类的对象，进行解析
                            JSONObject object = msg.getJSONObject(string);
                            Category cat = new Category();
                            cat.parseJson(object);
                            String id = cat.getId();
                            // 解析完成，需要将分类保存到 公共数据区中 DataStorage
                            dataStorage.addCategory(cat);
                        }
                    }
                } else {
                    // TODO 显示错误信息
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
        showCategory();
    }

    private void showCategory() {
        // 通过 SharedPreference 进行是否显示过教程的判断
        SharedPreferences sp = getSharedPreferences(Constants.SP_APP_DATA, MODE_PRIVATE);
        // 是否显示过教程
        boolean shownTutorial = sp.getBoolean(Constants.SP_KEY_TUTORIAL, false);

        if (shownTutorial) {
            // 显示过教程，直接显示主界面
            startActivity(new Intent(this, MainActivity.class));
        } else {
            // 没有显示过教程，启动教程界面
            startActivity(new Intent(this, TutorialActivity.class));
        }

        finish();
    }
}